package model

import "AccessAdmin/internal/model/entity"

type MenuData struct {
	Id         uint   `json:"id"         ` // 编号
	Title      string `json:"title"      ` // 菜单标题
	Pid        uint   `json:"pid"        ` // 父id
	Path       string `json:"path"       ` // 路由地址
	Icon       string `json:"icon"       ` // 菜单图标
	Permission string `json:"permission" ` // 权限标识
	Type       int    `json:"type" `       // 类型
}

type MenuItem struct {
	MenuData
	Children []*MenuItem
}

// MenuGetListInput 查询菜单列表
type MenuGetListInput struct {
	Page       int    // 分页码
	Size       int    // 分页数量
	Title      string // 用户名
	Permission string // 用户名
	Status     int    // 状态
}

// MenuGetListOutput 查询列表结果
type MenuGetListOutput struct {
	List  []entity.Menu `json:"list"`  // 列表
	Page  int           `json:"page"`  // 分页码
	Size  int           `json:"size"`  // 分页数量
	Total int           `json:"total"` // 数据总数
}

// MenuCreateUpdateBase 创建/修改菜单基类
type MenuCreateUpdateBase struct {
	Pid        uint
	Title      string
	Permission string
	Icon       string
	Method     string
	Path       string
	Type       int
	IsHide     int
	Sort       int
	Status     int
}

// MenuCreateInput 创建菜单
type MenuCreateInput struct {
	MenuCreateUpdateBase
}

// MenuCreateOutput 创建菜单返回结果
type MenuCreateOutput struct {
	MenuId uint `json:"menu_id"`
}

// MenuUpdateInput 修改菜单
type MenuUpdateInput struct {
	Id uint
	MenuCreateUpdateBase
}

// MenuGetDetailInput 获取详情
type MenuGetDetailInput struct {
	Id uint
}

// MenuGetDetailOutput 获取详情结果
type MenuGetDetailOutput struct {
	entity.Menu
}

// UserRoleAuthTreeOutput 角色授权信息
type UserRoleAuthTreeOutput struct {
	Id      uint   `json:"id"`
	Pid     uint   `json:"pid"`
	Name    string `json:"name"`
	Checked bool   `json:"checked"`
	Open    bool   `json:"open"`
}
